package com.wk.thread;

import java.util.concurrent.CountDownLatch;
/**
 * . CountDownLatch主要有两个方法，当一个或多个线程调用await方法时，这些线程会阻塞

②. 其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞)

③. 计数器的值变为0时，因await方法阻塞的线程会被唤醒，继续执行
 * @author wukai
 */
//需求:要求6个线程都执行完了,mian线程最后执行
public class CountDownLatchDemo {
  public static void main(String[] args) throws Exception{

      CountDownLatch countDownLatch=new CountDownLatch(6);
      for (int i = 1; i <=6; i++) {
          new Thread(()->{
              System.out.println(Thread.currentThread().getName()+"\t");
              countDownLatch.countDown();
          },i+"").start();
      }
      countDownLatch.await();
      System.out.println(Thread.currentThread().getName()+"\t班长关门走人，main线程是班长");
  }
}